package com.example.ffepeg.ffpeg;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Arrays;
import java.util.List;

public class chatReplace {
    public static void main(String[] args) {
        String text = "这是一个测试：字符串包含冒号:和中文标点符号：。";
        //String s = formatText(text);
        //System.out.println(s);

        BigDecimal number = new BigDecimal("-0.52365411");
        BigDecimal result = number.setScale(1, RoundingMode.HALF_UP);
        double value = (result.doubleValue() + 1000) / 10;
        Integer roundedValue = Math.toIntExact(Math.round(value));
        System.out.println("评分输出最终结果 : " + roundedValue);

    }

    private static boolean isDetermine(String imgExtension){
        String[] IMAGE_EXTENSIONS = {"jpg", "png", "jpeg", "bmp", "mp4", "avi", "mov"};
        for (String allowedExtension : IMAGE_EXTENSIONS) {
            if (allowedExtension.equalsIgnoreCase(imgExtension)) {
                return true;
            }
        }
        return false;
    }



    public static String getFileExtension(String fileName) { //获取文件扩展名
        int lastDotIndex = fileName.lastIndexOf('.');
        if (lastDotIndex == -1) {
            return "";
        }
        return fileName.substring(lastDotIndex+1);
    }


    public static String formatText(String text) {
        String resultTxt = formatTextHelper(text, 0, new StringBuilder()).toString();
        return removeReplace(resultTxt);
    }

    private static StringBuilder formatTextHelper(String text, int start, StringBuilder result) {
        if (start >= text.length()) {
            return result;
        }

        char lastChar = text.charAt(start); // 记录上一个字符，默认为第一个字符
        result.append(lastChar); // 直接将第一个字符添加到结果中

        for (int i = start + 1; i < text.length(); i++) { // 从第二个字符开始遍历
            char c = text.charAt(i);

            // 如果当前字符是标点符号并且与上一个字符相同，则跳过（即不添加到结果中）
            if ((c == '!' || c == '?' || c == '；' || c == '？' || c == '！' || c == '…' || c == '。' || c == ';' || c == ',' || c == '，')
                    && c == lastChar) {
                continue;
            }

            // 添加当前字符到结果
            result.append(c);

            // 如果当前字符是以下字符，并且下一个字符与当前字符不同或没有下一个字符，则在其后追加换行符
            if ((c == '!' || c == '?' || c == '；' || c == '？' || c == '！' || c == '…' || c == '。' || c == ';' || c == ',' || c == '，')
                    && (i + 1 >= text.length() || text.charAt(i + 1) != c)) {
                result.append('\n');
            }

            // 更新上一个字符
            lastChar = c;
        }

        return result;
    }

    private static String removeReplace(String text){
        List<String> list = Arrays.asList("：",":");
        String modifiedString = text;
        for (String lace : list){
            modifiedString = modifiedString.replace(lace, ",");
        }
        return modifiedString;
    }
}
